package edu.tfh.s2.ehkbot.daten;

import java.util.Properties;

/**
 * @author s2zehn
 * @see java.util.Properties Speichert Einstellungen under einen Key ab.
 */
public class Einstellungen extends Properties {
	/**
	 * Singelton Pattern
	 */
	private static Einstellungen instance = null;
	private static final long serialVersionUID = 1L;

	public static Einstellungen getInstance() {
		if (instance == null) {
			instance = new Einstellungen();
		}
		return instance;
	}

	private Einstellungen() {
		super();
	}

	/**
	 * Liefert die Einstellung die unter key Abgespeichert ist.
	 * 
	 * @param key
	 *            Schlüssel um an den Wert zu kommen
	 * @return Wert der unter den Schlüßel key abgelegt wurd
	 * @throws NumberFormatException
	 *             Wird geworfen wenn der Wert unter den Key sich nicht in ein boolean konvertieren läst.
	 */
	public boolean getBooleanPropertie(String key) {
		return getProperty(key).equalsIgnoreCase("true") || getProperty(key).equalsIgnoreCase("1");
	}

	/**
	 * Liefert die Einstellung die unter key Abgespeichert ist.
	 * 
	 * @param key
	 *            Schlüssel um an den Wert zu kommen
	 * @return Wert der unter den Schlüßel key abgelegt wurd
	 * @throws NumberFormatException
	 *             Wird geworfen wenn der Wert unter den Key sich nicht in ein double konvertieren läst.
	 */
	public double getDoublePropertie(String key) {
		return Double.parseDouble(getProperty(key));
	}

	/**
	 * Liefert die Einstellung die unter key Abgespeichert ist.
	 * 
	 * @param key
	 *            Schlüssel um an den Wert zu kommen
	 * @return Wert der unter den Schlüßel key abgelegt wurd
	 * @throws NumberFormatException
	 *             Wird geworfen wenn der Wert unter den Key sich nicht in ein int konvertieren läst.
	 */
	public int getIntPropertie(String key) {
		return Integer.parseInt(getProperty(key));
	}
}
